fix(parser): type hints should reflect primitive types support#8175
Conversation
As per aws-powertools#4502, primitive types are supported by the `parser` utility. However, the type hints utilized in the functions and envelopes there do not reflect that at the moment, making type checkers lack when inferring the return types, for example. This aims to improve this situation by adjusting the type hints there.
|
Thanks a lot for your first contribution! Please check out our contributing guidelines and don't hesitate to ask whatever you need. |
|
Not all issues are linked correctly. Please link each issue to the PR either manually or using a closing keyword in the format If mentioning more than one issue, separate them with commas: i.e. |
leandrodamascena
left a comment
There was a problem hiding this comment.
Oi @catarinacps, tudo bem? :D
This is a great contribution, clean and consistent. Swapping Model (bound to BaseModel) to unbound T across all envelopes finally makes type checkers aware of the primitive types support we added in #4502. Love it!
APROVADO!
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #8175 +/- ##
========================================
Coverage 96.72% 96.72%
========================================
Files 286 286
Lines 14341 14341
Branches 1200 1200
========================================
Hits 13871 13871
Misses 341 341
Partials 129 129 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
1585b66
into
aws-powertools:develop
|
Awesome work, congrats on your first merged pull request and thank you for helping improve everyone's experience! |



Issue number: closes #8174
Summary
As per #4502, primitive types are supported by the
parserutility. However, the type hints utilized in the functions and envelopes there do not reflect that at the moment, making type checkers lack when inferring the return types, for example. This aims to improve this situation by adjusting the type hints there.Changes
This PR thus changes the
TypeVarused in the envelope types' functions toT, introduced in #4502. It also sets theBaseEnvelopeparser(...)method with envelope overload return type hint toT | list[T | None] | Noneto allow those subclasses to overload the method correctly.User experience
Before:
After the change the type checker will be able to narrow the type to
list[EUMMessage], as that is the actual return type that should be shown.By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.